Field
The present disclosure relates generally to methods and apparatus for measuring performance of a multi-thread processor, and more specifically to methods and apparatus for loading measuring and performance profiling of multi-thread processors in devices such as wireless devices on a per thread basis and for various uses and data rates.
Background
In devices such as wireless devices, profiling the performance of a processor that the wireless communication is running on is important. The profiling and measurement of processor performance can provide insight for design optimization, as well as provide a convenient tool for design debugging. The result of such profiling can be used for resource management in a device utilizing the processor, such as a wireless device in one example. Such resource management can be dynamic and flexible if the profiling is performed in a real-time manner. One example is a communication flow control based processor loading that is measured based on performance profiling.
As the wireless technology evolves, many sophisticated mobile features and high data rates are required to be implemented in a wireless devices or handheld devices. The processor technology of the wireless devices, consequently, evolves too. For example, for 2G cellular technologies such as GSM/GPRS, a typical processor is based on single thread architecture, while for 3G/4G cellular technologies such as HSPA+/LTE/EV-DO, processors have evolved to be multi-thread based.
No scheme or apparatus available in the known art, however, measures multi-thread processor CPU loading under various use cases and data rates. Furthermore, there is no known tool or instrument available to probe the multi-thread processor CPU usage, per each thread, when a packet data session is ongoing in a device, such as a wireless device. Moreover, there is no known tool or instrument available to probe the multi-thread processor “all-wait” (i.e. all processor threads are idle) status when a packet data session is ongoing in a wireless device. Accordingly, a need exists for determining loading of a multi-thread processor and profiling performance of the processor using the determined loading.